package com.tealer.mycustomerecylerview.view;

import android.view.View;

import java.util.Stack;
import java.util.concurrent.ExecutionException;

/**
 * 描述
 * RecylerView回收池
 * @author Created by lipengbo
 * @email 1162947801@qq.com
 * @time Created on 2022/11/24 22:32
 */
public class Recyler {

    /**
     * 回收池的容器， 存储所有回收了的View
     *
     */
    private Stack<View>[] views;

    public Recyler(int viewTypeCount){
        //根据类型的种类数量来创建数组
        views=new Stack[viewTypeCount];
        //初始化数组中的每一个Stack(  总体数据结构一个二维数组)
        for (int x=0;x<viewTypeCount;x++){
            views[x]=new Stack<>();
        }

    }


    /**
     * 将View放入对应类型的Stack中
     * @param itemView
     * @param itemViewType
     */
    public void put(View itemView,int itemViewType){
        views[itemViewType].push(itemView);
    }


    public View get(int itemViewType){
        try {
            return views[itemViewType].pop();
        }catch (Exception e){
            return null;
        }
    }
}
